/**
 * API统一导出
 * 提供所有API的集中导出，方便调用
 */

import request from './request.js';
import deviceApi from './deviceApi.js';
import alarmApi from './alarmApi.js';
import statsApi from './statsApi.js';
import ticketApi from './ticketApi.js';
import unitApi from './unitApi.js';
import sceneApi from './sceneApi.js';
import thirdPartyApi from './thirdPartyApi.js';
import config from '../config/config.js';
import baseApi from './api.js';

// 导出统一的API对象
export default {
  // 基础请求函数
  request,
  
  // 设备相关API
  device: deviceApi,
  
  // 报警相关API
  alarm: alarmApi,
  
  // 统计分析相关API
  stats: statsApi,
  
  // 工单相关API
  ticket: ticketApi,
  
  // 单位相关API
  unit: unitApi,
  
  // 场景相关API
  scene: sceneApi,
  
  // 第三方API
  thirdParty: thirdPartyApi,
  
  // 配置信息
  config,
  
  // 上传文件
  upload(filePath, formData = {}) {
    return new Promise((resolve, reject) => {
      uni.uploadFile({
        url: config.UPLOAD_URL,
        filePath,
        name: 'file',
        formData,
        header: {
          Authorization: `Bearer ${uni.getStorageSync('token')}`
        },
        success: (res) => {
          if (res.statusCode === 200) {
            try {
              const data = JSON.parse(res.data);
              resolve(data);
            } catch (error) {
              reject(new Error('解析响应数据失败'));
            }
          } else {
            reject(new Error(`上传失败，状态码: ${res.statusCode}`));
          }
        },
        fail: (error) => {
          reject(error);
        }
      });
    });
  },
  
  // 获取完整图片URL
  getImageUrl(path) {
    if (!path) return '';
    if (path.startsWith('http')) return path;
    return `${config.IMAGE_BASE_URL}/${path}`;
  }
};

// 注意：statsApi 已经在文件顶部通过 import 导入，不应该在这里重复声明
// 如果需要扩展统计分析相关的 API，请修改 statsApi.js 文件 